package com.ruoyi.ma.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.ma.domain.MaMaterialMeasureSingle;
import com.ruoyi.ma.domain.vo.MaMaterialProgressDetailsVo;
import com.ruoyi.ma.mapper.MaMaterialProgressDetailsMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import java.math.BigDecimal;
import java.util.List;

import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 材料计量单业务对象 ma_material_measure_single
 *
 * @author llb
 * @date 2024-11-01
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class MaMaterialMeasureSingleBo extends BaseEntity {

    /**
     * 计量单id
     */
//    @NotNull(message = "计量单id不能为空", groups = { EditGroup.class })
    private Long measureSingleId;

    /**
     * 计量期号id
     */
//    @NotNull(message = "计量期号id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long measureQhId;
    /**
     * 期号
     */
    private Integer qh;
    /**
     * 标段id
     */
//    @NotNull(message = "标段id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long bdId;
    /**
     * 站点id
     */
    private Long zdId;

    /**
     * 供应商id
     */
//    @NotNull(message = "供应商id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long gysId;

    /**
     * 类型id
     */
//    @NotNull(message = "类型id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long type;
    /**
     * 清单id
     */
    private Long manifestId;
    /**
     * 材料编号
     */
//    @NotBlank(message = "材料编号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String manifestCode;

    /**
     * 材料名称
     */
//    @NotBlank(message = "材料名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String manifestName;

    /**
     * 型号
     */
//    @NotBlank(message = "型号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String model;

    /**
     * 规格
     */
//    @NotBlank(message = "规格不能为空", groups = { AddGroup.class, EditGroup.class })
    private String specification;
    /**
     * 单位
     */
    private String unit;

    /**
     * 数量(吨)
     */
//    @NotNull(message = "数量(吨)不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal number;

    /**
     * 市场单价
     */
//    @NotNull(message = "市场单价不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal marketPrice;

    /**
     * 调整额
     */
//    @NotNull(message = "调整额不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal adjustments;

    /**
     * 结算单价
     */
//    @NotNull(message = "结算单价不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal settlementPrice;

    /**
     * 金额
     */
//    @NotNull(message = "金额不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal total;

    /**
     * 交接验收单据号
     */
//    @NotBlank(message = "交接验收单据号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String acceptanceCode;

    /**
     * 备注
     */
//    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String remark;

    /**
     * 计量数量
     */
    private BigDecimal meNum;
    /**
     * 计量金额
     */
    private BigDecimal meTotal;
    /**
     * 截止上期未计量数量
     */
    private BigDecimal preUnmeNum;

    private String beginDate;
    private String endDate;

    private List<MaMaterialMeasureSingle> updateList; // 更新列表

}
